<?php
namespace jm\helper;


class Arrayx
{
    /**
     * @param  $haystack 暂时是一个二维数组
     * @param  $needle  value
     * @param  $field   key
     */
    public static function inArray($haystack, $field, $needle)
    {
        if (empty($haystack) || !is_array($haystack)) {
            return false;
        }
            
        if (count($haystack) > 0) {
            foreach ($haystack as $key => $value) {
                foreach ($value as $key2 => $value2) {
                    if ($key2 === $field && $value2 === $needle) {
                        return true;
                    }
                    continue;
                }
            }
        }
        return false;
    }

    // 保留数组中指定的列
    public static function keepColumn($haystack, $column=[])
    {
        $arr = [];
        foreach ($haystack as $value) {
            $temp = [];
            foreach ($column as $key) {
                $temp[$key] = $value[$key];
            }
            array_push($arr, $temp);
        }
        return $arr;
    }

    // 二维数组，某个key 的value作为key，另一个key的value作为value；
    // [['id'=>1,'type'=>'video'], ['id'=>2,'type'=>'image']] =>
    // ['video'=>1, 'image'=>2]
    public static function newKeyValue($haystack, $keyKey, $valueKey)
    {
        $arr = [];
        foreach ($haystack as $value) {
            $arr[$value[$keyKey]] = $value[$valueKey];
        }
        return $arr;
    }

    // // 
    // public static function inArray2($haystack, $needle, $field='')
    // {
    //     if (empty($haystack) || !is_array($haystack)) {
    //         return false;
    //     }
            
    //     foreach ($haystack as $key => $value) {
    //         // 二维数组
    //         if (is_array($value)) {
    //             # code...
    //         } else {
    //             // 一维数组
    //             if ($key === $field && ) {
    //                 # code...
    //             }
    //         }
    //     }
        
    // }
}